package com.lcw.library.imagepicker.utils;

import android.net.Uri;
import android.widget.ImageView;

import java.io.Serializable;

/**
 * 图片加载器接口
 * 
 * 图片选择器的图片加载接口，需要外部实现
 * 支持Glide、Picasso、Fresco等图片加载库
 * 
 */
public interface ImageLoader extends Serializable {

    /**
     * 缩略图加载方案（使用文件路径）
     *
     * @param imageView
     * @param imagePath
     */
    void loadImage(ImageView imageView, String imagePath);

    /**
     * 缩略图加载方案（使用Uri，推荐在Android 10+使用）
     *
     * @param imageView
     * @param imageUri
     */
    void loadImage(ImageView imageView, Uri imageUri);

    /**
     * 大图加载方案（使用文件路径）
     *
     * @param imageView
     * @param imagePath
     */
    void loadPreImage(ImageView imageView, String imagePath);

    /**
     * 大图加载方案（使用Uri，推荐在Android 10+使用）
     *
     * @param imageView
     * @param imageUri
     */
    void loadPreImage(ImageView imageView, Uri imageUri);

    /**
     * 视频缩略图加载方案（使用文件路径）
     *
     * @param imageView
     * @param videoPath
     */
    void loadVideoThumbnail(ImageView imageView, String videoPath);

    /**
     * 视频缩略图加载方案（使用Uri，推荐在Android 10+使用）
     *
     * @param imageView
     * @param videoUri
     */
    void loadVideoThumbnail(ImageView imageView, Uri videoUri);

    /**
     * 视频播放方案
     *
     * @param imageView
     * @param path
     */
//    void loadVideoPlay(ImageView imageView, String path);

    /**
     * 缓存管理
     */
    void clearMemoryCache();
}
